<?php
declare (strict_types=1);

namespace app\course\model\base\admin;

use app\common\model\BaseModel;
use app\course\logic\base\CourseCert;

/**
 * Class CourseCertConfig
 *
 * @package app\course\model\base\admin
 */
class CourseCertConfig extends BaseModel
{
    /**
     * 表名
     *
     * @var string
     */
    protected $name = 'course_cert_config';
    /**
     * 时间显示格式
     *
     * @var string
     */
    protected $dateFormat = 'Y-m-d H:i';

    /**
     * 设置自动写入时间
     *
     * @var boolean
     */
    protected $autoWriteTimestamp = true;

    /**
     * 不需要更新时间
     *
     * @var boolean
     */
    protected $createTime = false;

    /**
     * 定义字段类型
     *
     * @var array
     */
    protected $type = [
        'id'        => 'integer',
        'course_id' => 'integer',
        'condition' => 'serialize'
    ];

    /**
     * 成功创建之后
     * Author 亓官雨树<lucky.max@foxmail.com>
     * Date：   2021-10-13
     */
    public static function onAfterInsert($data)
    {
        // 检查是否发放证书
        app(CourseCert::class)->addCert($data->course_id);
    }

    /**
     * 成功更新之后
     * Author 亓官雨树<lucky.max@foxmail.com>
     * Date：   2021-10-13
     */
    public static function onAfterUpdate($data)
    {
        if ( $data->has_cert && count($data->condition) == 1 ) {
            // 检查是否发放证书
            app(CourseCert::class)->addCert($data->course_id);
        }
    }
}